<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		   <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
           <meta name="author" content="Zhang Cheng">
		<title></title>
		<script src="js/vue.js" ></script>
		<style>
			li{
				border: 1px dashed #999;
				margin: 5px;
				line-height: 35px;
				padding-left: 5px;
				font-size: 12px;
				width: 100%;
			}
			li:hover{
				background-color: pink;
				transition: all 0.8s ease;
			}
			.v-enter,
			.v-leave-to{
				opacity: 0;
				transform: translateY(100px);
			}
			.v-enter-active,
			.v-leave-active{
				transition: all 0.8s ease;
			}
			
			
			/*v-move和v-leave-active 两个类配合使用，实现列表删除时触发渐变的列表效果*/
			.v-move{
				transition: all 0.8s ease;
			}
			.v-leave-active{
				position: absolute;
			}
		</style>
	</head>
	<body>
		<div id="app">
		    <div>
		    	<label>
		    		Id:
		    		<input type="text" v-model="id"/>
		    	</label>
		    	<label>
		    		Name:
		    		<input type="text" v-model="name"/>
		    	</label>
		    	<input type="button" @click="add" value="添加"/>
		    </div>
		
				<!--
                	给transitionGroup 添加appear属性 实现页面的渐变效果
                -->
                <!--
                	tag 属性可以指定 在浏览器里渲染的时候将transitionGroup渲染成一个你指定的标签 如果不指定的话会默认渲染成一个span标签
                -->
				<transition-group appear tag='ul'>
					<!--
                    	在实现过渡动画的时候，如果动画元素是多个，并且由v-for循环渲染出来的，不能用 transition包裹起来，需要使用
                    	transitionGroup
                    -->
                    <!--
                    	如果要为v-for循环渲染的元素设置过度效果的话必须为 元素设置 :key 属性
                    -->
					<li v-for="(item,index) in list" :key="item.id" @click="del(index)">
						{{item.id}}------{{item.name}}
					</li>
				</transition-group>
		
		</div>
		<script>
			var app = new Vue({
				el:'#app',
				data:{
					id:'',
					name:'',
					list:[
						{id:1,name:'赵高'},
						{id:2,name:'秦桧'},
						{id:3,name:'严嵩'},
						{id:4,name:'魏忠贤'}
					
					]
				},
				methods:{
					add(){
						this.list.push({id:this.id,name:this.name});
						this.id = this.name ='';
					},
					del(index){
						this.list.splice(index,1);
					}
				}
			});
		</script>
	</body>
</html>